package com.ljb.utilslibrary.commUtils;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 日期相关的工具类
 * Created by ljb on 2017/6/26.
 */

public class DateUtils {

    /**
     * 日期字符串转时间戳
     *
     * @param format yyyy-MM-dd HH:mm:ss 年-月-日 时:分:秒
     * @param date   日期字符串
     * @return 时间戳
     */
    public static long date2TimeStamp(String format, String date) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        try {
            return sdf.parse(date).getTime() / 1000;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return -1;
    }

    /**
     * 时间戳转日期字符串
     *
     * @param format    yyyy-MM-dd HH:mm:ss 年-月-日 时:分:秒
     * @param timestamp 时间戳
     * @return 日期字符串
     */
    private static String timeStamp2Date(String format, long timestamp) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(new Date(timestamp * 1000L));
    }

    /**
     * 获取当前系统时间戳,随系统时间的变化而变化
     *
     * @return 时间戳
     */
    public static long getTimeStamp() {
        return System.currentTimeMillis() / 1000;
    }

    /**
     * 获取网络时间戳,请在子线程调用
     *
     * @return 当前网络时间戳,-1表示获取失败
     */
    public static long getURLTime() {
        try {
            URL url = new URL("http://www.baidu.com");
            URLConnection uc = url.openConnection();
            uc.connect();
            return uc.getDate();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return -1;
    }
}
